package com.erp.erp_entitys.ProductFjGe;

import java.util.ArrayList;
import java.util.List;

public class ProductFjGeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Boolean forUpdate;

    public ProductFjGeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setForUpdate(Boolean forUpdate) {
        this.forUpdate = forUpdate;
    }

    public Boolean getForUpdate() {
        return forUpdate;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeIsNull() {
            addCriterion("fj_code is null");
            return (Criteria) this;
        }

        public Criteria andFjCodeIsNotNull() {
            addCriterion("fj_code is not null");
            return (Criteria) this;
        }

        public Criteria andFjCodeEqualTo(String value) {
            addCriterion("fj_code =", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeNotEqualTo(String value) {
            addCriterion("fj_code <>", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeGreaterThan(String value) {
            addCriterion("fj_code >", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeGreaterThanOrEqualTo(String value) {
            addCriterion("fj_code >=", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeLessThan(String value) {
            addCriterion("fj_code <", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeLessThanOrEqualTo(String value) {
            addCriterion("fj_code <=", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeLike(String value) {
            addCriterion("fj_code like", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeNotLike(String value) {
            addCriterion("fj_code not like", value, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeIn(List<String> values) {
            addCriterion("fj_code in", values, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeNotIn(List<String> values) {
            addCriterion("fj_code not in", values, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeBetween(String value1, String value2) {
            addCriterion("fj_code between", value1, value2, "fjCode");
            return (Criteria) this;
        }

        public Criteria andFjCodeNotBetween(String value1, String value2) {
            addCriterion("fj_code not between", value1, value2, "fjCode");
            return (Criteria) this;
        }

        public Criteria andCpblIsNull() {
            addCriterion("cpbl is null");
            return (Criteria) this;
        }

        public Criteria andCpblIsNotNull() {
            addCriterion("cpbl is not null");
            return (Criteria) this;
        }

        public Criteria andCpblEqualTo(String value) {
            addCriterion("cpbl =", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblNotEqualTo(String value) {
            addCriterion("cpbl <>", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblGreaterThan(String value) {
            addCriterion("cpbl >", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblGreaterThanOrEqualTo(String value) {
            addCriterion("cpbl >=", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblLessThan(String value) {
            addCriterion("cpbl <", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblLessThanOrEqualTo(String value) {
            addCriterion("cpbl <=", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblLike(String value) {
            addCriterion("cpbl like", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblNotLike(String value) {
            addCriterion("cpbl not like", value, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblIn(List<String> values) {
            addCriterion("cpbl in", values, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblNotIn(List<String> values) {
            addCriterion("cpbl not in", values, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblBetween(String value1, String value2) {
            addCriterion("cpbl between", value1, value2, "cpbl");
            return (Criteria) this;
        }

        public Criteria andCpblNotBetween(String value1, String value2) {
            addCriterion("cpbl not between", value1, value2, "cpbl");
            return (Criteria) this;
        }

        public Criteria andPjblIsNull() {
            addCriterion("pjbl is null");
            return (Criteria) this;
        }

        public Criteria andPjblIsNotNull() {
            addCriterion("pjbl is not null");
            return (Criteria) this;
        }

        public Criteria andPjblEqualTo(String value) {
            addCriterion("pjbl =", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblNotEqualTo(String value) {
            addCriterion("pjbl <>", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblGreaterThan(String value) {
            addCriterion("pjbl >", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblGreaterThanOrEqualTo(String value) {
            addCriterion("pjbl >=", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblLessThan(String value) {
            addCriterion("pjbl <", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblLessThanOrEqualTo(String value) {
            addCriterion("pjbl <=", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblLike(String value) {
            addCriterion("pjbl like", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblNotLike(String value) {
            addCriterion("pjbl not like", value, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblIn(List<String> values) {
            addCriterion("pjbl in", values, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblNotIn(List<String> values) {
            addCriterion("pjbl not in", values, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblBetween(String value1, String value2) {
            addCriterion("pjbl between", value1, value2, "pjbl");
            return (Criteria) this;
        }

        public Criteria andPjblNotBetween(String value1, String value2) {
            addCriterion("pjbl not between", value1, value2, "pjbl");
            return (Criteria) this;
        }

        public Criteria andChinanameIsNull() {
            addCriterion("chinaName is null");
            return (Criteria) this;
        }

        public Criteria andChinanameIsNotNull() {
            addCriterion("chinaName is not null");
            return (Criteria) this;
        }

        public Criteria andChinanameEqualTo(String value) {
            addCriterion("chinaName =", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameNotEqualTo(String value) {
            addCriterion("chinaName <>", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameGreaterThan(String value) {
            addCriterion("chinaName >", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameGreaterThanOrEqualTo(String value) {
            addCriterion("chinaName >=", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameLessThan(String value) {
            addCriterion("chinaName <", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameLessThanOrEqualTo(String value) {
            addCriterion("chinaName <=", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameLike(String value) {
            addCriterion("chinaName like", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameNotLike(String value) {
            addCriterion("chinaName not like", value, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameIn(List<String> values) {
            addCriterion("chinaName in", values, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameNotIn(List<String> values) {
            addCriterion("chinaName not in", values, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameBetween(String value1, String value2) {
            addCriterion("chinaName between", value1, value2, "chinaname");
            return (Criteria) this;
        }

        public Criteria andChinanameNotBetween(String value1, String value2) {
            addCriterion("chinaName not between", value1, value2, "chinaname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameIsNull() {
            addCriterion("englishName is null");
            return (Criteria) this;
        }

        public Criteria andEnglishnameIsNotNull() {
            addCriterion("englishName is not null");
            return (Criteria) this;
        }

        public Criteria andEnglishnameEqualTo(String value) {
            addCriterion("englishName =", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameNotEqualTo(String value) {
            addCriterion("englishName <>", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameGreaterThan(String value) {
            addCriterion("englishName >", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameGreaterThanOrEqualTo(String value) {
            addCriterion("englishName >=", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameLessThan(String value) {
            addCriterion("englishName <", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameLessThanOrEqualTo(String value) {
            addCriterion("englishName <=", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameLike(String value) {
            addCriterion("englishName like", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameNotLike(String value) {
            addCriterion("englishName not like", value, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameIn(List<String> values) {
            addCriterion("englishName in", values, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameNotIn(List<String> values) {
            addCriterion("englishName not in", values, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameBetween(String value1, String value2) {
            addCriterion("englishName between", value1, value2, "englishname");
            return (Criteria) this;
        }

        public Criteria andEnglishnameNotBetween(String value1, String value2) {
            addCriterion("englishName not between", value1, value2, "englishname");
            return (Criteria) this;
        }

        public Criteria andMzIsNull() {
            addCriterion("mz is null");
            return (Criteria) this;
        }

        public Criteria andMzIsNotNull() {
            addCriterion("mz is not null");
            return (Criteria) this;
        }

        public Criteria andMzEqualTo(String value) {
            addCriterion("mz =", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzNotEqualTo(String value) {
            addCriterion("mz <>", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzGreaterThan(String value) {
            addCriterion("mz >", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzGreaterThanOrEqualTo(String value) {
            addCriterion("mz >=", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzLessThan(String value) {
            addCriterion("mz <", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzLessThanOrEqualTo(String value) {
            addCriterion("mz <=", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzLike(String value) {
            addCriterion("mz like", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzNotLike(String value) {
            addCriterion("mz not like", value, "mz");
            return (Criteria) this;
        }

        public Criteria andMzIn(List<String> values) {
            addCriterion("mz in", values, "mz");
            return (Criteria) this;
        }

        public Criteria andMzNotIn(List<String> values) {
            addCriterion("mz not in", values, "mz");
            return (Criteria) this;
        }

        public Criteria andMzBetween(String value1, String value2) {
            addCriterion("mz between", value1, value2, "mz");
            return (Criteria) this;
        }

        public Criteria andMzNotBetween(String value1, String value2) {
            addCriterion("mz not between", value1, value2, "mz");
            return (Criteria) this;
        }

        public Criteria andJzIsNull() {
            addCriterion("jz is null");
            return (Criteria) this;
        }

        public Criteria andJzIsNotNull() {
            addCriterion("jz is not null");
            return (Criteria) this;
        }

        public Criteria andJzEqualTo(String value) {
            addCriterion("jz =", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzNotEqualTo(String value) {
            addCriterion("jz <>", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzGreaterThan(String value) {
            addCriterion("jz >", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzGreaterThanOrEqualTo(String value) {
            addCriterion("jz >=", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzLessThan(String value) {
            addCriterion("jz <", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzLessThanOrEqualTo(String value) {
            addCriterion("jz <=", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzLike(String value) {
            addCriterion("jz like", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzNotLike(String value) {
            addCriterion("jz not like", value, "jz");
            return (Criteria) this;
        }

        public Criteria andJzIn(List<String> values) {
            addCriterion("jz in", values, "jz");
            return (Criteria) this;
        }

        public Criteria andJzNotIn(List<String> values) {
            addCriterion("jz not in", values, "jz");
            return (Criteria) this;
        }

        public Criteria andJzBetween(String value1, String value2) {
            addCriterion("jz between", value1, value2, "jz");
            return (Criteria) this;
        }

        public Criteria andJzNotBetween(String value1, String value2) {
            addCriterion("jz not between", value1, value2, "jz");
            return (Criteria) this;
        }

        public Criteria andTjIsNull() {
            addCriterion("tj is null");
            return (Criteria) this;
        }

        public Criteria andTjIsNotNull() {
            addCriterion("tj is not null");
            return (Criteria) this;
        }

        public Criteria andTjEqualTo(String value) {
            addCriterion("tj =", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjNotEqualTo(String value) {
            addCriterion("tj <>", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjGreaterThan(String value) {
            addCriterion("tj >", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjGreaterThanOrEqualTo(String value) {
            addCriterion("tj >=", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjLessThan(String value) {
            addCriterion("tj <", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjLessThanOrEqualTo(String value) {
            addCriterion("tj <=", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjLike(String value) {
            addCriterion("tj like", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjNotLike(String value) {
            addCriterion("tj not like", value, "tj");
            return (Criteria) this;
        }

        public Criteria andTjIn(List<String> values) {
            addCriterion("tj in", values, "tj");
            return (Criteria) this;
        }

        public Criteria andTjNotIn(List<String> values) {
            addCriterion("tj not in", values, "tj");
            return (Criteria) this;
        }

        public Criteria andTjBetween(String value1, String value2) {
            addCriterion("tj between", value1, value2, "tj");
            return (Criteria) this;
        }

        public Criteria andTjNotBetween(String value1, String value2) {
            addCriterion("tj not between", value1, value2, "tj");
            return (Criteria) this;
        }

        public Criteria andZhugeIsNull() {
            addCriterion("zhuge is null");
            return (Criteria) this;
        }

        public Criteria andZhugeIsNotNull() {
            addCriterion("zhuge is not null");
            return (Criteria) this;
        }

        public Criteria andZhugeEqualTo(String value) {
            addCriterion("zhuge =", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeNotEqualTo(String value) {
            addCriterion("zhuge <>", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeGreaterThan(String value) {
            addCriterion("zhuge >", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeGreaterThanOrEqualTo(String value) {
            addCriterion("zhuge >=", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeLessThan(String value) {
            addCriterion("zhuge <", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeLessThanOrEqualTo(String value) {
            addCriterion("zhuge <=", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeLike(String value) {
            addCriterion("zhuge like", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeNotLike(String value) {
            addCriterion("zhuge not like", value, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeIn(List<String> values) {
            addCriterion("zhuge in", values, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeNotIn(List<String> values) {
            addCriterion("zhuge not in", values, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeBetween(String value1, String value2) {
            addCriterion("zhuge between", value1, value2, "zhuge");
            return (Criteria) this;
        }

        public Criteria andZhugeNotBetween(String value1, String value2) {
            addCriterion("zhuge not between", value1, value2, "zhuge");
            return (Criteria) this;
        }
        public Criteria andMainProductCodeIsNull() {
            addCriterion("main_product_code is null");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeIsNotNull() {
            addCriterion("main_product_code is not null");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeEqualTo(String value) {
            addCriterion("main_product_code =", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeNotEqualTo(String value) {
            addCriterion("main_product_code <>", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeGreaterThan(String value) {
            addCriterion("main_product_code >", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("main_product_code >=", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeLessThan(String value) {
            addCriterion("main_product_code <", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeLessThanOrEqualTo(String value) {
            addCriterion("main_product_code <=", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeLike(String value) {
            addCriterion("main_product_code like", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeNotLike(String value) {
            addCriterion("main_product_code not like", value, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeIn(List<String> values) {
            addCriterion("main_product_code in", values, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeNotIn(List<String> values) {
            addCriterion("main_product_code not in", values, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeBetween(String value1, String value2) {
            addCriterion("main_product_code between", value1, value2, "mainProductCode");
            return (Criteria) this;
        }

        public Criteria andMainProductCodeNotBetween(String value1, String value2) {
            addCriterion("main_product_code not between", value1, value2, "mainProductCode");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}